package jwtMinddle

//func IsParseTokenHandle() gin.HandlerFunc {
//	return func(ctx *gin.Context) {
//		claims, b := ParseWithClaims[UserClaims[any]](ctx.Request.Header.Get(contx.JwtAuthHeader))
//		//解析未成功
//		if !b {
//			ctx.AbortWithStatusJSON(http.StatusUnauthorized, entity.GetResultInfoAny(-1).SetMsg("access token parse error:"))
//			return
//		} else {
//			//當前時間沒過期
//			if !claims.VerifyExpiresAt(time.Now(), false) {
//				ctx.AbortWithStatusJSON(http.StatusUnauthorized, entity.GetResultInfoAny(http.StatusUnauthorized).SetMsg("access token expired"))
//				return
//			}
//			// 即将超过过期时间，则添加一个http header `new-token` 给前端更新
//			if t := claims.ExpiresAt.Time.Add(-contx.JwtTokenMaxRemaining); t.Before(time.Now()) {
//				tokenStr := CreatJwtTokenWithClaims[any](
//					&UserClaims[any]{
//						UserId: claims.UserId,
//						RegisteredClaims: &jwt.RegisteredClaims{
//							ExpiresAt: &jwt.NumericDate{Time: time.Now().Add(contx.JwtTokenMaxRemaining)},
//						}})
//				ctx.Header(contx.JwtAuthHeader+"22", tokenStr) //返回新的token
//			}
//		}
//		ctx.Next()
//	}
//}
